import pandas as pd
from ..base_test_case import BaseTestCase
from ..page_objects import 远程连接列表
import pytest, allure, datetime


class MyTestClass(BaseTestCase):

    @pytest.mark.smoke
    @allure.title("导出远程连接列表数据，导出成功")
    def test_order_002(self):
        self.进入远程连接列表界面()
        self.click(远程连接列表.开始日期)
        self.click(远程连接列表.月份向前)
        self.click(远程连接列表.左上角日期)
        self.click(远程连接列表.右上角日期)
        self.click(远程连接列表.日期的确定按钮)
        self.click(远程连接列表.搜索)
        self.sleep(1)
        搜索后界面的订单号 = self.get_text(远程连接列表.第三行数据的订单编号)
        self.click(远程连接列表.导出远程连接列表数据)
        self.sleep(1)
        # self.assert_element(远程连接列表.导出成功提示语)
        # self.assert_text("导出数据", 远程连接列表.导出成功提示语)
        # self.assert_text_visible("导出数据", 远程连接列表.导出成功提示语)
        # self.assert_exact_text("导出数据成功", 远程连接列表.导出成功提示语)
        # self.assert_in("成功", self.get_text(远程连接列表.导出成功提示语))
        # self.assert_equal("导出数据成功", self.get_text(远程连接列表.导出成功提示语))
        # self.assert_true(self.get_text(远程连接列表.导出成功提示语))
        self.assert_element_visible(远程连接列表.导出成功提示语)
        self.sleep(4)
        self.assert_element_not_visible(远程连接列表.导出成功提示语)
        # 断言excel 文件名正确
        file = f"远程连接列表_{str(datetime.datetime.now()).split(' ')[0]}.xlsx"
        self.assert_downloaded_file(file, timeout=3)
        sheet_name = list(pd.read_excel(f"./downloaded_files/{file}", sheet_name=None, engine="openpyxl").keys())[0]
        # 断言excel sheet页名正确
        self.assert_equal("远程连接", sheet_name)
        表格数据 = pd.read_excel(f"./downloaded_files/{file}", sheet_name=0)
        # 断言excel 文件列名正确
        self.assert_equal([i for i in 表格数据.keys()], 远程连接列表.导出表格的所有列名)
        # 断言excel 第三行数据的订单号跟界面获取的一致
        self.assert_equal(搜索后界面的订单号, str(表格数据.values[2][0]))